package com.wmx.hb.fastmybatis.service;

import com.gitee.fastmybatis.core.PageInfo;
import com.wmx.hb.fastmybatis.pojo.BasPersonInfo;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * 使用 fastmybatis 操作
 *
 * @author wangMaoXiong
 * @version 1.0
 * @date 2022/12/7 20:09
 */
public interface PersonInfoService {

    /**
     * 分页查询
     *
     * @param pageIndex ：当前页码，必须大于等于1
     * @param pageSize  ：每页展示的条数，必须大于等于1
     * @return
     */
    PageInfo<BasPersonInfo> listPage(int pageIndex, int pageSize);

    /**
     * 查询指定部门下的员工
     *
     * @param deptNo ：部门Id
     * @return
     */
    List<Map<String, Object>> listMapByDeptNo(int deptNo);

    /**
     * com.gitee.fastmybatis.core.query.Query 查询方法测试
     *
     * @throws ParseException
     */
    void queryTest() throws ParseException;

    /**
     * 根据员工名称模糊查询
     *
     * @param ename
     * @return
     */
    List<BasPersonInfo> loadByName(String ename);

    /**
     * 新增保存，忽略null字段
     *
     * @param basPersonInfo
     * @return
     */
    void save(BasPersonInfo basPersonInfo);

    /**
     * 更新，更新所有字段
     *
     * @param basPersonInfo
     */
    void update(BasPersonInfo basPersonInfo);

    /**
     * 根据id删除，在有逻辑删除字段的情况下，做UPDATE操作
     *
     * @param id
     */
    void deleteById(Integer id);

}
